﻿using System;
using System.Collections.Generic;
using System.Text;
using System.IO;
using System.Runtime.InteropServices;

namespace PuttySessionTool
{
    class IniFile
    {
        public string inipath;

        [DllImport("kernel32")]
        private static extern long WritePrivateProfileString(
            string section, string key, string val, string filePath);

        [DllImport("kernel32")]
        private static extern int GetPrivateProfileString(
            string section, string key, string def, StringBuilder retVal, int size, string filePath);

        /// ﹤summary﹥  
        /// 构造方法  
        /// ﹤/summary﹥  
        /// ﹤param name="INIPath"﹥文件路径﹤/param﹥  
        public IniFile(string INIPath)
        {
            inipath = INIPath;
        }

        /// ﹤summary﹥  
        /// 写入INI文件  
        /// ﹤/summary﹥  
        /// ﹤param name="Section"﹥项目名称(如 [TypeName] )﹤/param﹥  
        /// ﹤param name="Key"﹥键﹤/param﹥  
        /// ﹤param name="Value"﹥值﹤/param﹥  
        public void IniWriteValue(string Section, string Key, string Value)
        {
            WritePrivateProfileString(Section, Key, Value, this.inipath);
        }

        /// ﹤summary﹥  
        /// 读出INI文件  
        /// ﹤/summary﹥  
        /// ﹤param name="Section"﹥项目名称(如 [TypeName] )﹤/param﹥  
        /// ﹤param name="Key"﹥键﹤/param﹥  
        public string IniReadValue(string Section, string Key)
        {
            StringBuilder temp = new StringBuilder(2048);
            int i = GetPrivateProfileString(Section, Key, "", temp, 2048, this.inipath);
            return temp.ToString();
        }

        /// ﹤summary﹥  
        /// 验证文件是否存在  
        /// ﹤/summary﹥  
        /// ﹤returns﹥布尔值﹤/returns﹥  
        public bool Exist()
        {
            return File.Exists(inipath);
        }

    }
}
